#!/usr/bin/python
#-*-coding: utf-8 -*- 
"""  field_plotting.py
Un petit script qui se connecte à la BDD récupère les valeurs pour deux données, les affiche sur un graphe avec une couleur spécifique au target field
Il y a un argument obligatoire : le mot de passe pour la connexion MySQL
Roxane Levy  """

import pylab
from numpy import array,linspace
from pylab import axis, amin, amax,xlabel,ylabel
import sys
import MySQLdb 

total_iterations = 1500
map_x = 30 ; 
map_y = 25 ; 

def accessBD() :
# Pour l'accès à la base de donnée,, modifiable par l'utilisateur
	HOST = 'localhost'
	USER = 'root'
	PASSWD = sys.argv[1]
	DATABASE = 'ADPD_Database'
	# connexion à la BDD
	db_connection = MySQLdb.connect(
       		 host=HOST,
      		 user=USER, 
       		 passwd=PASSWD, 
       		 )

	# il faut un curseur pour exécuter la commande
	cursor = db_connection.cursor()
	cursor.execute('USE ADPD_Database')

	cursor.execute('SELECT ppe,hnr,status from Parkinson') ; # éléments sélectionnés en exemple
	data = cursor.fetchall()
	tagfield=[]
	tag1 = []
	tag2 = []
	for row in data :
		tag1.append(row[0])  
		tag2.append(row[1]) 
		tagfield.append(row[2]) 

	t = []
	t.append(tag1)
	t.append(tag2)
	t.append(tagfield)


	try:
  		 db_connection.commit()
	except:
  		 db_connection.rollback()

	db_connection.close()
	return array(t)


if __name__ == '__main__':
    if (len(sys.argv) < 2) :
		print "usage:%s PASSWORD" %sys.argv[0]
		exit(0)

    fields = accessBD()
    markers = ['x']
    colors = ['red','green']

 
    for idx in range(len(fields[0])) :
	pylab.plot(fields[0][idx],fields[1][idx], markers[0], markersize=8,color=colors[int(fields[2][idx])],markeredgewidth=2)  
  
    # abscisse et ordonnée correspondent aux éléments sélectionnés en exemple
    ylabel('hnr')
    xlabel('ppe')  
    axis([amin(fields[0])-0.1,amax(fields[0])+0.1,amin(fields[1])-0.1,amax(fields[1])+0.1])

    pylab.show() # show the plot

